In data communication, forwarding of data packets is typically provided by a network of forwarding nodes. Implementations exist where the forwarding nodes have a larger or smaller degree of decision logic on how to forward the data packets; implementations vary between full or almost complete autonomous control of said forwarding, e.g., in versions of the Internet Protocol (IP) based networks according to the Internet Engineering Task Force (IETF) standards or the Ethernet based networks according to the Institute of Electrical and Electronics Engineers (IEEE) 802 standard—and no or only little autonomous control of said forwarding, e.g., in implementations where a data plane constituted by the forwarding elements is separated from a control plane where the decision logic resides. Latter scenarios are sometimes referred to as a Software Defined Network (SDN). Here a forwarding node may operate based on a set of forwarding rules which typically are implemented by execution of commands which are provided by a control node of the control plane controlling operation of the network of forwarding nodes, e.g., in a centralized and concentrated manner.
Sometimes forwarding nodes having a comparably large degree of autonomous control of said forwarding are referred to as routers or switches; while forwarding nodes having only a comparably small degree of autonomous control of said forwarding are referred to as data path nodes.
In any such implementation, situations are known where it is desired to execute commands in a plurality of forwarding nodes. Such commands may have various purposes, e.g., implementation of new forwarding rules as mentioned above, but also general traffic engineering operations, read and/or write operations regarding operation properties of the forwarding nodes, aggregation of operational statistics, etc.
In conventional techniques, a central unit, e.g., the control node, communicates with each one of the plurality of forwarding nodes to prompt execution of the respective command. Such a communication is typically established using dedicated control channel communication including a respective protocol and possibly dedicated data links between the forwarding nodes and the central unit. Such a scenario has certain limitations. For example, size and complexity of typical networks of forwarding nodes are steadily increasing and this trend is predicted to continue. Then the work load of the central unit may be heavy as the number of operational steps to prompt execution of commands in all forwarding nodes may be very large. Further, the network may be congested by a high amount of control messages which include the commands. All this may slow down or even inhibit the operation of the network of forwarding nodes as is shown below for a particular scenario which exemplarily illustrates limitations of such conventional techniques.
In networks of forwarding nodes, data packets in the data plane typically traverse a plurality of forwarding nodes between an ingress forwarding node, e.g., where the data packets first enters the network of forwarding nodes, and an egress forwarding node, e.g., where the data packet leaves the network of forwarding nodes. Each forwarding node of the plurality of forwarding nodes may forward a data packet based on the forwarding rules along dedicated data links of the data plane. Scenarios are known where these forwarding rules need to be modified in a live network, i.e., in a situation where data packets keep arriving during the modification process. A coordinated executing of the respective commands implementing new or modified forwarding rules at each forwarding node of the plurality of forwarding nodes is typically required in order to avoid forwarding loops, lost data packets, etc. (forwarding failures). Strategies for reducing forwarding failures are known, e.g., implementing a strict sequence of said executing of the respective commands by communicating with each forwarding node one after another in a predetermined order, a time to live, as described e.g. in IETF Request for Comments (RFC) 791 of September 1981, section 1.4, or a split-horizon, as described e.g. in IETF RFC 2453 of November 1998, section 3.4.3, in the Ethernet or IP based networks, or pre-provisioning of alternative forwarding rules. In a simple scenario, the implementing of new forwarding rules may be executed sequentially starting at the egress forwarding node and progressing step-by-step towards the ingress forwarding node along the so-called forwarding path to avoid forwarding failures.
Some techniques of reducing forwarding failures are based on enforcing the order in which a set of forwarding nodes executes a set of commands prompting modifications related to a specific type of data packets. Typical types of data packets may be: all packets with a common destination, all data packets with a common combination of source and destination, all data packets of a specific protocol type, etc. In a communication network of significant size, at any given point of time there are typically modifications on-going for a very large amount of different types of packets. Such techniques, sometimes referred to as network control techniques, typically aim at largely or fully independent control of modifications related to different types of data packets. They often rely on controlling the behaviour of single forwarding nodes and on getting feedback from each node in order to enforce dependencies between different nodes.
Yet, such strategies of reducing forwarding failures face certain restrictions. For example, they may require a set of complex rules which need to be obeyed in any one of the plurality of forwarding nodes. This may increase the system complexity and maintenance efforts. Further, their applicability to SDNs may be strongly restricted. In general, due to the high degree of complexity of such known strategies, operational reliability or redundancy of the system may be reduced; for example, a single operational error of a forwarding node may cause forwarding failures. Similar restrictions may apply to other types of commands.
Furthermore, when individual forwarding nodes are controlled and feedback is obtained from each individual forwarding node, this may result in unintentional inter-dependencies between various sets of commands which are inherently independent. For example, modifications related to a given type of data packets may unnecessarily impact the inherently independent modifications related to other types of data packets, e.g., due to a plurality of commands for different types of data packets pending for execution at a forwarding node and/or congesting the control channel, etc. This may cause inefficiencies such as longer setup times, higher processing load, and idle processing units waiting for permission to continue execution.
Therefore, a need exist to provide advanced techniques for executing commands in a plurality of forwarding nodes. In particular, a need exists to proved techniques which allow for fast execution and/or reliable execution and/or efficient execution of the commands. A need exists to provide techniques which reduce inter-dependencies between different sets of commands.